/*
 * TODO:
 *  - this could still be simplified a lot
 *  - there there is a bit of mixup between message and svg server
 * This interface is used to communicate instructions to the SVG Server.
 * The SVG Server understands instructions such as:
 *  - REAL
 *  - PRO
 *  - ...
 */
package serveursvg;

import java.awt.Point;

/**
 *
 *
 */
public interface IMessageController extends java.rmi.Remote
{

    public static enum MessageType
    {

        REAL,   // draws a REALease message
        PRO,    // draws PROcess line
        REQ,    // draws a REQuest message
        REP,    // draws a REPly message
        SC,     // draws a Critical Section message
        ECL,    // genrates local event
        TXT,    // draws a TeXT message
        GEN,    // GENerates the svg file
        CLR,    // clear svg content
    }

    public void creerEvenementLocal(int pid, int dateDeb)
            throws java.rmi.RemoteException, java.io.IOException;

    public void dessinerREQ(int pidInit, int pidDest, int dateDeb, int dateFin)
            throws java.rmi.RemoteException, java.io.IOException;

    public void dessinerREP(int pidInit, int pidDest, int dateDeb, int dateFin)
            throws java.rmi.RemoteException, java.io.IOException;

    public void dessinerREAL(int pidInit, int pidDest, int dateDeb, int dateFin)
            throws java.rmi.RemoteException, java.io.IOException;

    public void dessinerProcessus(int pid)
            throws java.rmi.RemoteException, java.io.IOException;

    public void dessinerSC(int pidInit, int dateDeb, int dateFin)
            throws java.rmi.RemoteException, java.io.IOException;

    public void genererSVG()
            throws java.rmi.RemoteException, java.io.IOException;

    public void clearContent()
            throws java.rmi.RemoteException, java.io.IOException;

     public void ecrireTexte(Point x, String taillePolice, String texte)
             throws java.rmi.RemoteException, java.io.IOException;
}
